package com.example.user.dto;

import lombok.Data;
import javax.validation.constraints.NotBlank;

/**
 * 用户登录DTO（数据传输对象）
 *
 * 该类用于封装用户登录时提交的数据，包括登录账号（可以是用户名、邮箱或手机号）、密码以及“记住我”选项。
 * 在用户进行登录操作时，前端会将这些信息封装为该对象并传递给后端接口，后端通过该DTO进行参数校验和业务处理。
 *
 * 字段说明：
 * - account：登录账号，支持用户名、邮箱或手机号，不能为空。
 * - password：用户密码，不能为空。
 * - rememberMe：是否记住我，默认为false。
 *
 * @author crp
 * @since 2025-09-23
 */
@Data
public class UserLoginDTO {

    /**
     * 登录账号（用户名/邮箱/手机号）
     */
    @NotBlank(message = "登录账号不能为空")
    private String account;

    /**
     * 密码
     */
    @NotBlank(message = "密码不能为空")
    private String password;

    /**
     * 记住我
     */
    private Boolean rememberMe = false;
}
